// Code generated by MockGen. DO NOT EDIT.
// Source: client_v2.go
//
// Generated by this command:
//
//	mockgen -destination mocks/client_v2_mock.go -source client_v2.go -package mocks
//
// Package mocks is a generated GoMock package.
package mocks

import (
	context "context"
	reflect "reflect"

	common "d7y.io/api/v2/pkg/apis/common/v2"
	scheduler "d7y.io/api/v2/pkg/apis/scheduler/v2"
	gomock "go.uber.org/mock/gomock"
	grpc "google.golang.org/grpc"
)

// MockV2 is a mock of V2 interface.
type MockV2 struct {
	ctrl     *gomock.Controller
	recorder *MockV2MockRecorder
}

// MockV2MockRecorder is the mock recorder for MockV2.
type MockV2MockRecorder struct {
	mock *MockV2
}

// NewMockV2 creates a new mock instance.
func NewMockV2(ctrl *gomock.Controller) *MockV2 {
	mock := &MockV2{ctrl: ctrl}
	mock.recorder = &MockV2MockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockV2) EXPECT() *MockV2MockRecorder {
	return m.recorder
}

// AnnounceHost mocks base method.
func (m *MockV2) AnnounceHost(arg0 context.Context, arg1 *scheduler.AnnounceHostRequest, arg2 ...grpc.CallOption) error {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "AnnounceHost", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

// AnnounceHost indicates an expected call of AnnounceHost.
func (mr *MockV2MockRecorder) AnnounceHost(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AnnounceHost", reflect.TypeOf((*MockV2)(nil).AnnounceHost), varargs...)
}

// AnnouncePeer mocks base method.
func (m *MockV2) AnnouncePeer(arg0 context.Context, arg1 string, arg2 ...grpc.CallOption) (scheduler.Scheduler_AnnouncePeerClient, error) {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "AnnouncePeer", varargs...)
	ret0, _ := ret[0].(scheduler.Scheduler_AnnouncePeerClient)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// AnnouncePeer indicates an expected call of AnnouncePeer.
func (mr *MockV2MockRecorder) AnnouncePeer(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AnnouncePeer", reflect.TypeOf((*MockV2)(nil).AnnouncePeer), varargs...)
}

// Close mocks base method.
func (m *MockV2) Close() error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Close")
	ret0, _ := ret[0].(error)
	return ret0
}

// Close indicates an expected call of Close.
func (mr *MockV2MockRecorder) Close() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockV2)(nil).Close))
}

// ExchangePeer mocks base method.
func (m *MockV2) ExchangePeer(arg0 context.Context, arg1 *scheduler.ExchangePeerRequest, arg2 ...grpc.CallOption) (*scheduler.ExchangePeerResponse, error) {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "ExchangePeer", varargs...)
	ret0, _ := ret[0].(*scheduler.ExchangePeerResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ExchangePeer indicates an expected call of ExchangePeer.
func (mr *MockV2MockRecorder) ExchangePeer(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExchangePeer", reflect.TypeOf((*MockV2)(nil).ExchangePeer), varargs...)
}

// LeaveHost mocks base method.
func (m *MockV2) LeaveHost(arg0 context.Context, arg1 *scheduler.LeaveHostRequest, arg2 ...grpc.CallOption) error {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "LeaveHost", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

// LeaveHost indicates an expected call of LeaveHost.
func (mr *MockV2MockRecorder) LeaveHost(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LeaveHost", reflect.TypeOf((*MockV2)(nil).LeaveHost), varargs...)
}

// LeavePeer mocks base method.
func (m *MockV2) LeavePeer(arg0 context.Context, arg1 *scheduler.LeavePeerRequest, arg2 ...grpc.CallOption) error {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "LeavePeer", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

// LeavePeer indicates an expected call of LeavePeer.
func (mr *MockV2MockRecorder) LeavePeer(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LeavePeer", reflect.TypeOf((*MockV2)(nil).LeavePeer), varargs...)
}

// StatPeer mocks base method.
func (m *MockV2) StatPeer(arg0 context.Context, arg1 *scheduler.StatPeerRequest, arg2 ...grpc.CallOption) (*common.Peer, error) {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "StatPeer", varargs...)
	ret0, _ := ret[0].(*common.Peer)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// StatPeer indicates an expected call of StatPeer.
func (mr *MockV2MockRecorder) StatPeer(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StatPeer", reflect.TypeOf((*MockV2)(nil).StatPeer), varargs...)
}

// StatTask mocks base method.
func (m *MockV2) StatTask(arg0 context.Context, arg1 *scheduler.StatTaskRequest, arg2 ...grpc.CallOption) (*common.Task, error) {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "StatTask", varargs...)
	ret0, _ := ret[0].(*common.Task)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// StatTask indicates an expected call of StatTask.
func (mr *MockV2MockRecorder) StatTask(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StatTask", reflect.TypeOf((*MockV2)(nil).StatTask), varargs...)
}

// SyncProbes mocks base method.
func (m *MockV2) SyncProbes(arg0 context.Context, arg1 *scheduler.SyncProbesRequest, arg2 ...grpc.CallOption) (scheduler.Scheduler_SyncProbesClient, error) {
	m.ctrl.T.Helper()
	varargs := []any{arg0, arg1}
	for _, a := range arg2 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "SyncProbes", varargs...)
	ret0, _ := ret[0].(scheduler.Scheduler_SyncProbesClient)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// SyncProbes indicates an expected call of SyncProbes.
func (mr *MockV2MockRecorder) SyncProbes(arg0, arg1 any, arg2 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{arg0, arg1}, arg2...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncProbes", reflect.TypeOf((*MockV2)(nil).SyncProbes), varargs...)
}
